package com.qijian.maindata.domain.vo;

import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qijian.common.annotation.Excel;
import com.qijian.maindata.domain.BomCraftFile;
import com.qijian.tool.domain.Storage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.util.Date;
import java.util.List;

/**
 * 【请填写功能名称】对象
 *
 * @author qijian
 * @date 2023-11-15
 */

@Data
@ToString
public class BomCraftFileVo extends BomCraftFile {
    /**
     * 来源表
     */
    @Excel(name = "来源表")
    @ApiModelProperty(value = "来源表")
    private String classTable;

    /**
     * 来源表ID
     */
    @Excel(name = "来源表ID")
    @ApiModelProperty(value = "来源表ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long classId;

    private Integer classify;

    /**
     * 文件真实的名称
     */
    @Excel(name = "文件真实的名称")
    @ApiModelProperty(value = "文件真实的名称")
    private String realName;

    /**
     * 文件名
     */
    @Excel(name = "文件名")
    @ApiModelProperty(value = "文件名")
    private String name;

    /**
     * 后缀
     */
    @Excel(name = "后缀")
    @ApiModelProperty(value = "后缀")
    private String suffix;

    /**
     * 路径
     */
    @Excel(name = "路径")
    @ApiModelProperty(value = "路径")
    private String url;

    /**
     * 类型
     */
    @Excel(name = "类型")
    @ApiModelProperty(value = "类型")
    private String type;

    /**
     * 大小
     */
    @Excel(name = "大小")
    @ApiModelProperty(value = "大小")
    private String size;

    /**
     * 存储类型
     */
    @Excel(name = "存储类型")
    @ApiModelProperty(value = "存储类型")
    private Storage.StorageType storageType;

    /**
     * 存储类型
     */
    @Excel(name = "存储类型")
    @ApiModelProperty(value = "存储类型")
    private String itemCode;

    /**
     * 存储类型
     */
    @Excel(name = "存储类型")
    @ApiModelProperty(value = "存储类型")
    private String itemName;

    List<BomCraftFileVo> historyList;



    /**
     * 消息签收(拓扑)
     */
    private JSONObject signNotificationNodes;

    @JsonSerialize(using = ToStringSerializer.class)
    private Long notificationId;


    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date fileUploadTime;

    private String fileUploadBy;

    private int level;

    // 消息签收人
    private String msgReceiver;

}
